home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat3w / fmmatrix.z / fmmatrix
Encoding:
Text File  |  1998-10-20  |  5.7 KB  |  133 lines

  1.  
  2.  
  3.  
  4. FFFFMMMMMMMMAAAATTTTRRRRIIIIXXXX((((3333WWWW))))                                                      FFFFMMMMMMMMAAAATTTTRRRRIIIIXXXX((((3333WWWW))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      fminitpagematrix,  fmsetpagematrix, fmgetpagematrix, fmscalepagematrix,
  10.      fmrotatepagematrix, fmconcatpagematrix - font manager page matrix
  11.      operations
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      ####iiiinnnncccclllluuuuddddeeee <<<<ffffmmmmcccclllliiiieeeennnntttt....hhhh>>>>
  15.  
  16.      vvvvooooiiiidddd ffffmmmmiiiinnnniiiittttppppaaaaggggeeeemmmmaaaattttrrrriiiixxxx(((())))
  17.  
  18.      vvvvooooiiiidddd ffffmmmmsssseeeettttppppaaaaggggeeeemmmmaaaattttrrrriiiixxxx((((mmmm))))
  19.      ddddoooouuuubbbblllleeee mmmm[[[[3333]]]][[[[2222]]]];;;;
  20.  
  21.      vvvvooooiiiidddd ffffmmmmggggeeeettttppppaaaaggggeeeemmmmaaaattttrrrriiiixxxx((((mmmm))))
  22.      ddddoooouuuubbbblllleeee mmmm[[[[3333]]]][[[[2222]]]];;;;
  23.  
  24.      vvvvooooiiiidddd ffffmmmmssssccccaaaalllleeeeppppaaaaggggeeeemmmmaaaattttrrrriiiixxxx((((xxxx))))
  25.      ddddoooouuuubbbblllleeee xxxx;;;;
  26.  
  27.      vvvvooooiiiidddd ffffmmmmrrrroooottttaaaatttteeeeppppaaaaggggeeeemmmmaaaattttrrrriiiixxxx((((aaaannnngggglllleeee))))
  28.      ddddoooouuuubbbblllleeee aaaannnngggglllleeee;;;;
  29.  
  30.      vvvvooooiiiidddd ffffmmmmccccoooonnnnccccaaaattttppppaaaaggggeeeemmmmaaaattttrrrriiiixxxx((((mmmm))))
  31.      ddddoooouuuubbbblllleeee mmmm[[[[3333]]]][[[[2222]]]];;;;
  32.  
  33. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  34.      The argument _m points to a 3x2 matrix of doubles, of which you need fill
  35.      in only the first two rows when loading values. (The third row is
  36.      reserved for future development and is currently ignored.)  This matrix
  37.      is a two dimensional transformation matrix that you can multiply against
  38.      the page matrix.  (The page matrix is independent of the hardware matrix
  39.      stack.)  You can use this multiplication of the page matrix to scale and
  40.      rotate text.  For more information on two-dimensional transformation
  41.      matrices, see Chapter 7, "Geometrical Transformations" in _F_u_n_d_a_m_e_n_t_a_l_s _o_f
  42.      _I_n_t_e_r_a_c_t_i_v_e _C_o_m_p_u_t_e_r _G_r_a_p_h_i_c_s by J.D. Foley and A. Van Dam, (Addison-
  43.      Wesley, 1982).
  44.  
  45.      Changing the page matrix changes the page, which you can visualize as a
  46.      transparent sheet that lies on top of the window.  Distorting this sheet
  47.      changes the appearance of text rendered on it.  If you rotate the page,
  48.      you rotate the text in the window.  If you stretch or compress the page
  49.      (scale the page) you stretch or compress the text on the page.
  50.  
  51.      If you are not familiar with using transformation matrices, you should
  52.      avoid the routines that require the _m matrix.  Fortunately, you can still
  53.      perform scales or rotations on the page matrix.  Use the
  54.      _f_m_s_c_a_l_e_p_a_g_e_m_a_t_r_i_x and _f_m_r_o_t_a_t_e_p_a_g_e_m_a_t_r_i_x routines. Currently, the only
  55.      way to render rotated text is to alter the page matrix. However, you do
  56.      not always need to scale the page matrix (call _f_m_s_c_a_l_e_p_a_g_e_m_a_t_r_i_x) to
  57.      render text of a different size.  In fact, the preferred method for
  58.      scaling text often is to call _f_m_s_c_a_l_e_f_o_n_t. This associates a scaling
  59.      factor to a given font, which, as in PostScript, begins as a 1-point-high
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. FFFFMMMMMMMMAAAATTTTRRRRIIIIXXXX((((3333WWWW))))                                                      FFFFMMMMMMMMAAAATTTTRRRRIIIIXXXX((((3333WWWW))))
  71.  
  72.  
  73.  
  74.      set of characters.
  75.  
  76.      But, getting back to the page matrix, use:  _f_m_i_n_i_t_p_a_g_e_m_a_t_r_i_x to
  77.      initialize the page matrix to an identity matrix.
  78.  
  79.      _f_m_s_e_t_p_a_g_e_m_a_t_r_i_x to load the page matrix with the floating point values
  80.      supplied in matrix _m.
  81.  
  82.      _f_m_g_e_t_p_a_g_e_m_a_t_r_i_x to return the current page matrix in the matrix supplied
  83.      by the client.
  84.  
  85.      _f_m_s_c_a_l_e_p_a_g_e_m_a_t_r_i_x to uniformly scale the page matrix by _x.
  86.  
  87.      _f_m_r_o_t_a_t_e_p_a_g_e_m_a_t_r_i_x to rotate the page matrix by the specified angle,
  88.      where the angle (measured in degrees) increases up from the x axis.
  89.  
  90.      _f_m_c_o_n_c_a_t_p_a_g_e_m_a_t_r_i_x to post concatenate the _m matrix (supplied by the
  91.      client) with the current page matrix.
  92.  
  93. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  94.      fminit(3W), fmgetfontinfo(3W), fmprstr(3W), fmscalefont(3W),
  95.      fmsetfont(3W).
  96.  
  97. NNNNOOOOTTTTEEEE
  98.      This routine is available only in immediate mode.
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.